/**
 * 文件名称: socket.h
 * 摘    要: linux网络编程示例
 * 来    源: 自我总结
 *
 * 当前版本: 1.0 
 * 作    者: huenrong
 * 完成日期: 2019-07-07
 **/


#ifndef __SOCKET_H
#define __SOCKET_H

#ifdef __cplusplus
extern "C" {
#endif


/************************************************************************
函数名称: creat_tcp_server
函数功能: 创建tcp server线程
函数参数: tcp_server_function: tcp server的功能函数
          tcp_server_port: tcp server 监听串口号
函数返回: 成功: 返回0
          失败: 返回-1
************************************************************************/
int creat_tcp_server(int (* tcp_server_function)(const int *), const int tcp_server_port);

/************************************************************************
函数名称: creat_tcp_client
函数功能: 创建tcp client线程
函数参数: tcp_client_function: tcp client的功能函数
          tcp_server_ip: 需要连接的tcp server ip地址
          tcp_server_port: 需要连接的tcp server port
函数返回: 成功: 返回0
          失败: 返回-1
************************************************************************/
int creat_tcp_client(int (* tcp_client_function)(const int), 
                    const char *tcp_server_ip,  const int tcp_server_port);


// 以下是功能函数示例代码, 根据项目情况实际修改
/************************************************************************
函数名称: tcp_server_function
函数功能: tcp server功能函数(根据项目实际需求进行相应修改)
函数参数: fd: 客户端套接字
函数返回: 成功: 返回0
          失败: 返回-1
************************************************************************/
int tcp_server_function(const int *fd);

/************************************************************************
函数名称: tcp_client_function
函数功能: tcp client功能函数
函数参数: client_fd: 客户端套接字
函数返回: 成功: 返回0
          失败: 返回-1/对应错误码
************************************************************************/
int tcp_client_function(const int client_fd);

#ifdef __cplusplus
}
#endif

#endif /* __SOCKET_H */

